package Remoto;



import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

import dto.*;


public interface IGestionRodamientos extends Remote{

	//De cliente dao
	public void agregarCliente(String razonSocial, String cuil, int tipo, String calle,String numero,String piso,String departamento,String localidad,String area, String numeroTel)  throws RemoteException;
	public String getUltimoId () throws RemoteException;
	public void eliminarCliente (ClienteTO cli) throws RemoteException;
	public ClienteTO loadCliente(int id)throws RemoteException;
	public List<ClienteTO> listarClientes()throws RemoteException;
	public void modificarCliente (String razonSocial, String cuil, int tipo, String calle,String numero,String piso,String departamento,String localidad,String area, String numeroTel)throws RemoteException;
	public List<String> listaId()throws RemoteException;
	public ClienteTO buscarCliente(int id)throws RemoteException;
	public String imprimirCliente(int id)throws RemoteException;
	public boolean esCliente(int id)throws RemoteException;
	public boolean coincideIdRz(int id, String razonSocial) throws RemoteException;
	public boolean existeNs(String ns) throws RemoteException;
	
	
	///DESDE ACA LA COTIZACION
	public void persistCotizacion(CotizacionTO cotizacion) throws RemoteException;
	public void updateCotizacion(CotizacionTO cotizacion)throws RemoteException;
	
	//El nro de la cotizacion es el ID
	public CotizacionTO getCotizacion(int numeroCotizacion)throws RemoteException;
	
	public SolicitudDeCotizacionTO getSolicitudCotizacion(int numeroSolicitud)throws RemoteException;
	
	public void agregarSolicitudCotizacion(List<SolicitudDeCotizacionTO> items)throws RemoteException;
	
	public void agregarSolicitud(SolicitudDeCotizacionTO sc)throws RemoteException;
	
	public List<SolicitudDeCotizacionTO> SolicitudesDeClientes(ClienteTO cliente)throws RemoteException;

	public List<ItemSolicitudDeCotizacionTO> listaDeItemsDeSolicitud (SolicitudDeCotizacionTO solicitudCotizacion)throws RemoteException;
	
	public List<CotizacionTO> listaDeCotizaciones (SolicitudDeCotizacionTO solicitudCotizacion)throws RemoteException;	
	
	
	
	///DESDE ACA LISTA DE DESCUENTOS
	public void persistListaDescuento(ListaDescuentosTO ld)throws RemoteException;	
	
	public void persistItemListaDescuento(ItemDescuentoTO item)throws RemoteException;	
	
	//El numeroListaPrecios es el ID que se genera
	public ListaDescuentosTO getListaDescuento(int numeroListaDescuento)throws RemoteException;	
	
	public ItemDescuentoTO getItemListaDescuento(int idItemListaDescuento)throws RemoteException;	
	
	public List<ListaDescuentosTO> listaDeProveedor(ProveedorTO prov)throws RemoteException;	

	public List<ItemDescuentoTO> listaDeItemsDeListaDePrecio (ListaDescuentosTO ld)throws RemoteException;
	
	
	///DESDE ACA LISTA DE PRECIOS
	public void persistListaPrecios(ListaDePrecioTO lp) throws RemoteException;
	
	public void persistItemListaPrecios(ItemListaDePrecioTO item)throws RemoteException;
	
	//El numeroListaPrecios es el ID que se genera
	public ListaDePrecioTO getListaPrecios(int numeroListaPrecios)throws RemoteException;
	
	public ItemListaDePrecioTO getItemListaPrecios(int idItemListaPrecios)throws RemoteException;
	
	public List<ListaDePrecioTO> listaDeProveedor(int idProveedor)throws RemoteException;

	public List<ItemListaDePrecioTO> listaDeItemsDeListaDePrecio (ListaDePrecioTO lp)throws RemoteException;
	
	
	///DE ACA EN ADELANTE ORDEN DE PEDIDO
	public void persistOrdenPedido(OrdenPedidoTO ordenPedido)throws RemoteException;
	
	public void persistItemPedido(ItemOrdenDePedidoTO item)throws RemoteException;
	
	public OrdenPedidoTO getOrdenPedido(int numeroOrdenPedido)throws RemoteException;
	
	public ItemOrdenDePedidoTO getItemPedido(int idItemPedido)throws RemoteException;
	
	public List<OrdenPedidoTO> listarOrdenesDePedido()throws RemoteException;

	public List<ItemOrdenDePedidoTO> listarItemsOrdenDePedido(int nroOrdenDePedido)throws RemoteException;
	
	
	///DE ACA EN ADELANTE Proveedor
	public void agregarProveedor(ProveedorTO prov) throws RemoteException;

	public String getUltimoIdProveedor() throws RemoteException;

	public void eliminarProveedor(ProveedorTO prov) throws RemoteException;

	public ProveedorTO loadProveedor(ProveedorTO prov) throws RemoteException;

	public List<ProveedorTO> listarProveedors() throws RemoteException;

	public void modificarProveedor(ProveedorTO prov) throws RemoteException;

	public List<String> listaIdProveedor() throws RemoteException;

	public ProveedorTO buscarProveedorPorCUIT(String cuit) throws RemoteException;

	public String imprimirProveedor(String id) throws RemoteException;
	
}